"""
@filename: app.py.py
@project: flask_project
@author: wlf
@time: 2022-09-04

"""
import os
from flask import Flask


def create_app(config=None):
    app = Flask(__name__)  # 生成核心对象

    # 加载config配置，app.config本质上就是dict（继承dict类，添加了很多方法）
    app.config.from_object('config.settings')  # app.config['PORT'] = 8000

    # 加载系统环境变量
    # 根据不同的系统环境变量，加载不同的配置文件
    if 'FLASK_CONF' in os.environ:
        app.config.from_envvar('FLASK_CONF')

    if config is not None:
        if isinstance(config, dict):
            app.config.update(config)
        elif config.endswith('.py'):
            app.config.from_pyfile(config)

    # 加载路由/绑定蓝图
    import router
    router.init_app(app)

    # 加载数据库/绑定orm对象
    import model
    model.init_app_db(app)

    return app